package com.easyjava.qingke.project.command.impl;


import com.easyjava.qingke.project.command.SystemCommand;
import com.easyjava.qingke.project.mybatis.pojo.CollarSingle;
import com.easyjava.qingke.project.mybatis.pojo.Material;
import com.easyjava.qingke.project.mybatis.pojo.Project;
import com.easyjava.qingke.project.mybatis.pojo.PurchaseOrder;
import com.easyjava.qingke.project.mybatis.pojo.PurchasePlanning;
import com.easyjava.qingke.project.mybatis.pojo.User;
import com.easyjava.qingke.project.util.ProjectConsole;

public class ChangeCommand extends SystemCommand {

	public void excute() {

		ProjectConsole.println("1.更改用户");
		ProjectConsole.println("2.更改项目");
		ProjectConsole.println("3.更改材料");
		ProjectConsole.println("4.修改采购计划");
		ProjectConsole.println("5.修改采购单");
		ProjectConsole.println("6.修改领用单");

		int id = ProjectConsole.promptInt("请输入想要操作的数字：");
		while (id > 0) {
			if (1==id) {
				changeUser();
				break;
			} else if (2==id) {
				changeProject();
				break;
			} else if (3==id) {
				changeMaterial();
				break;
			} else if (4==id) {
				changePurchasePlan();
				break;
			} else if (5==id) {
				changePurchaseOrder();
				break;
			} else if (6==id) {
				changeCollarSingle();
				break;
			} else {
				ProjectConsole.println("输入的数字不存在！");
				id = ProjectConsole.promptInt("请重新输入想要操作的数字：");
			}

		}
	}

	private void changeCollarSingle() {
		dao.selectCollarSingle();
		ProjectConsole.println();
		int id = ProjectConsole.promptInt("请输入ID：");
		CollarSingle collarSingle = new CollarSingle();
		while (!dao.isCollarSingleIdExists(id)) {
			ProjectConsole.println("该ID不存在！");
			id = ProjectConsole.promptInt("请重新输入ID：");
		}
		collarSingle.setId(id);
		String code = ProjectConsole.promptN("是否修改编码（是，请输入。否，可为空）：");
		while (code != null) {
			if (dao.isCollarSingleCodeExists(code)) {
				ProjectConsole.println("该编码已存在！");
				code = ProjectConsole.prompt("请输入新的编码：");
			}
			collarSingle.setCode(code);
			break;
		}
		String description =ProjectConsole.promptN("是否修改描述（是，请输入。否，可为空）：");
		if(description!=null){
			collarSingle.setDescription(description);
		}
		String  lastModifiedPerson=ProjectConsole.promptN("请输入修改人姓名（是，请输入。否，可为空）：");
		if(lastModifiedPerson!=null){
			collarSingle.setLastModifiedPerson(lastModifiedPerson);
		}
		dao.changeCollarSingle(collarSingle);

	}

	private void changePurchaseOrder() {
		dao.selectPurchaseOrder();
		ProjectConsole.println();
		int id = ProjectConsole.promptInt("请输入ID：");
		PurchaseOrder purchaseOrder = new PurchaseOrder();
		while (!dao.isPurchaseOrderIdExists(id)) {
			ProjectConsole.println("该ID不存在！");
			id = ProjectConsole.promptInt("请重新输入ID：");
		}
		purchaseOrder.setId(id);
		String code = ProjectConsole.promptN("是否修改编码（是，请输入。否，可为空）：");
		while (code != null) {
			if (dao.isPurchaseOrderCodeExists(code)) {
				ProjectConsole.println("该编码已存在！");
				code = ProjectConsole.prompt("请输入新的编码：");
			}
			purchaseOrder.setCode(code);
			break;
		}
		String description =ProjectConsole.promptN("是否修改描述（是，请输入。否，可为空）：");
		if(description!=null){
			purchaseOrder.setDescription(description);
		}
		String  lastModifiedPerson=ProjectConsole.promptN("请输入修改人姓名（是，请输入。否，可为空）：");
		if(lastModifiedPerson!=null){
			purchaseOrder.setLastModifiedPerson(lastModifiedPerson);
		}
		dao.changePurchaseOrder(purchaseOrder);

	}

	private void changePurchasePlan() {
		dao.selectPurchasePlanning();
		ProjectConsole.println();
		int id = ProjectConsole.promptInt("请输入ID：");
		PurchasePlanning purchasePlanning = new PurchasePlanning();
		while (!dao.isPurchasePlanningIdExists(id)) {
			ProjectConsole.println("该ID不存在！");
			id = ProjectConsole.promptInt("请重新输入ID：");
		}
		purchasePlanning.setId(id);
		String code = ProjectConsole.promptN("是否修改编码（是，请输入。否，可为空）：");
		while (code != null) {
			if (dao.isPurchasePlanCodeExists(code)) {
				ProjectConsole.println("该编码已存在！");
				code = ProjectConsole.prompt("请输入新的编码：");
				
			}
			purchasePlanning.setCode(code);
			break;
		}
		String description =ProjectConsole.promptN("是否修改描述（是，请输入。否，可为空）：");
		if(description!=null){
			purchasePlanning.setDescription(description);
		}
		String  lastModifiedPerson=ProjectConsole.promptN("请输入修改人姓名（是，请输入。否，可为空）：");
		if(lastModifiedPerson!=null){
			purchasePlanning.setLastModifiedPerson(lastModifiedPerson);
		}
		dao.changePurchasePlanning(purchasePlanning);

	}

	private void changeMaterial() {
		dao.selectMaterial();
		ProjectConsole.println();
		int id = ProjectConsole.promptInt("请输入ID：");
		Material material = new Material();
		while (!dao.isMaterialIdExists(id)) {
			ProjectConsole.println("该ID不存在！");
			id = ProjectConsole.promptInt("请重新输入ID：");
		}
		material.setId(id);
		String code = ProjectConsole.promptN("是否修改编码（是，请输入。否，可为空）：");
		while (code != null) {
			if (dao.isMaterialCodeExists(code)) {
				ProjectConsole.println("该编码已存在！");
				code = ProjectConsole.prompt("请输入新的编码：");
			}
			material.setCode(code);
			break;
		}
		String name = ProjectConsole.promptN("是否修改名称（是，请输入。否，可为空）：");
		if (name != null) {
			material.setName(name);
		}
		String type = ProjectConsole.promptN("是否修改型号（是，请输入。否，可为空）：");
		if (type != null) {
			material.setType(type);
		}
		String unit = ProjectConsole.promptN("是否修改单位（是，请输入。否，可为空）：");
		if (unit != null) {
			material.setUnit(unit);
		}
		dao.changeMaterial(material);

	}

	private void changeProject() {
		dao.selectProject();
		ProjectConsole.println();
		int id = ProjectConsole.promptInt("请输入ID：");
		Project project = new Project();
		while (!dao.isProjectIdExists(id)) {
			ProjectConsole.println("该ID不存在！");
			id = ProjectConsole.promptInt("请重新输入ID：");
		}
		project.setId(id);
		String code = ProjectConsole.promptN("是否修改编码（是，请输入。否，可为空）：");
		while (code != null) {
			if (dao.isProjectCodeExists(code)) {
				ProjectConsole.println("该编码已存在！");
				code = ProjectConsole.prompt("请输入新的编码：");
			}
			project.setCode(code);
			break;
		}
		String name = ProjectConsole.promptN("是否修改名称（是，请输入。否，可为空）：");
		if (name != null) {
			project.setName(name);
		}
		String buildUnit = ProjectConsole.promptN("是否修改建设单位（是，请输入。否，可为空）：");
		if (buildUnit != null) {
			project.setBuildUnit(buildUnit);
		}
		String firstParty = ProjectConsole.promptN("是否修改甲方（是，请输入。否，可为空）：");
		if (firstParty != null) {
			project.setFirstParty(firstParty);
		}
		dao.changeProject(project);

	}

	private void changeUser() {

		dao.selectUser();
		ProjectConsole.println();
		int id = ProjectConsole.promptInt("请输入ID：");
		User user = new User();
		while (!dao.isUserIdExists(id)) {
			ProjectConsole.println("该ID不存在！");
			id = ProjectConsole.promptInt("请重新输入ID：");
		}
		user.setId(id);
		String name = ProjectConsole.promptN("是否修改姓名（是，请输入。否，可为空）：");
		if (name != null) {
			user.setName(name);
		}
		String phone = ProjectConsole.promptN("是否修改电话（是，请输入。否，可为空）：");
		if (phone != null) {
			user.setPhone(phone);
		}
		String email = ProjectConsole.promptN("是否修改邮箱（是，请输入。否，可为空）：");
		if (email != null) {
			user.setEmail(phone);
		}
		dao.changeUser(user);
	}

}
